[−][src]Crate az
Numeric casts
This crate provides casts and checked casts.
Quick examples
use az::{Az, OverflowingAs, WrappingAs}; use core::num::Wrapping; // Panics on overflow with `debug_assertions`, otherwise wraps assert_eq!(12i32.az::<u32>(), 12u32); // Always wraps let wrapped = 1u32.wrapping_neg(); assert_eq!((-1).wrapping_as::<u32>(), wrapped); assert_eq!((-1).overflowing_as::<u32>(), (wrapped, true)); // Wrapping can also be obtained using `Wrapping` assert_eq!((-1).az::<Wrapping<u32>>().0, wrapped);
Conversions from floating-point to integers are also supported.
Numbers are rounded towards zero, but the Round
wrapper can be
used to convert floating-point numbers to integers with rounding to
the nearest, with ties rounded to even.
use az::{Az, CheckedAs, Round, SaturatingAs}; use core::f32; assert_eq!(15.7.az::<i32>(), 15); assert_eq!(Round(15.5).az::<i32>(), 16); assert_eq!(1.5e20.saturating_as::<i32>(), i32::max_value()); assert_eq!(f32::NAN.checked_as::<i32>(), None);
Using the az crate
The az crate is available on crates.io. To use it in your crate, add it as a dependency inside Cargo.toml:
[dependencies]
az = "0.3.1"
License
This crate is free software: you can redistribute it and/or modify it under the terms of either
- the Apache License, Version 2.0 or
- the MIT License
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache License, Version 2.0, shall be dual licensed as above, without any additional terms or conditions.
Structs
Round | Used to convert floating-point numbers to integers with rounding to the nearest, with ties rounded to even. |
Traits
Az | Used to cast values. |
Cast | Used to cast values. |
CheckedAs | Used for checked casts. |
CheckedCast | Used for checked casts. |
OverflowingAs | Used for overflowing casts. |
OverflowingCast | Used for overflowing casts. |
SaturatingAs | Used to cast into the destination type, saturating if the value does not fit. |
SaturatingCast | Used to cast into the destination type, saturating if the value does not fit. |
StaticAs | Deprecated Used to cast values if all possible source type values fit in the destination type. |
StaticCast | Deprecated Used to cast values if all possible source type values fit in the destination type. |
WrappingAs | Wrapping cast. |
WrappingCast | Wrapping cast. |
Functions
cast | Casts the value. |
checked_cast | Casts the value, returning |
overflowing_cast | Overflowing cast. |
saturating_cast | Casts the value, saturating if the value does not fit. |
static_cast | Deprecated Casts the value, returning |
wrapping_cast | Casts the value, wrapping on overflow. |